package com.jfs.qy.entity.response;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;

import java.io.Serializable;

/**
 * @Description 目标告警数组
 * @E-mail cwm3412638@163.com
 * @Author cwm
 * @Date 2022/11/4
 */
@Data
public class FaceAlarm implements Serializable {
    /**
     * 名单库与之匹配目标Id
     * -1表示陌生人，其他值表示名单库目标的唯一标识
     */
    @JSONField(name = "Id")
    private Long id;
    /**
     * 匹配目标所属的组
     * -1表示未参与目标比对的目标
     */
    @JSONField(name = "GrpId")
    private Long grpId;
    /**
     * 性别
     * 1：男， 2：女
     * 匹配到的名单库目标性别，Id字段不为-1时该字段才有效。
     */
    @JSONField(name = "Sex")
    private Integer sex;
    /**
     * 年龄
     * 0~254
     * 匹配到的名单库目标年龄，Id字段不为-1时该字段才有效
     */
    @JSONField(name = "Age")
    private Integer age;
    /**
     * 匹配目标的姓名
     */
    @JSONField(name = "Name")
    private String name;
    /**
     * 匹配目标所在组的组名
     */
    @JSONField(name = "GrpName")
    private String grpName;
    /**
     * 国籍
     */
    @JSONField(name = "Country")
    private String country;

    /**
     * 籍贯
     */
    @JSONField(name = "NativePlace")
    private String nativePlace;
    /**
     * 身份证
     */
    @JSONField(name = "IdCode")
    private String idCode;
    /**
     * 工作
     */
    @JSONField(name = "Job")
    private String job;
    /**
     * 电话
     */
    @JSONField(name = "Phone")
    private String phone;
    /**
     * 邮件
     */
    @JSONField(name = "Email")
    private String email;
    /**
     * 现居住地
     */
    @JSONField(name = "Domicile")
    private String domicile;
    /**
     * 评价
     */
    @JSONField(name = "Remark")
    private String remark;

    /**
     * 名单库与之匹配图片
     */
    @JSONField(name = "MatchedImage")
    private String matchedImage;

    /**
     * 上述目标图片的特征值
     */
    @JSONField(name = "MatchedFeature")
    private String matchedFeature;
    /**
     * 上述特征值的版本
     */
    @JSONField(name = "MatchedFtVersion")
    private Integer matchedFtVersion;
    /**
     * 抓拍目标出现次数
     */
    @JSONField(name = "AppearCnt")
    private Integer appearCnt;
    /**
     * 抓拍目标出现次数是否超过最大计数
     */
    @JSONField(name = "OverMaxCount")
    private Boolean overMaxCount;
    /**
     * 抓拍时间，2018-10-25 13:08:36，Unix时间戳
     */
    @JSONField(name = "StartTime")
    private Long startTime;
    /**
     * 抓拍时间，2018-10-25 13:08:36，Unix时间戳
     */
    @JSONField(name = "EndTime")
    private Long endTime;
    /**
     * 与名单库中匹配的图片的相似度
     */
    @JSONField(name = "Similarity")
    private Float similarity;
    /**
     * 前端IPC抓拍时图片的Id，32位无符号整型
     */
    @JSONField(name = "SnapId")
    private Integer snapId;
    /**
     * 抓拍的通道
     */
    @JSONField(name = "SnapChn")
    private Integer snapChn;
    /**
     * 抓拍目标图片
     */
    @JSONField(name = "SnapFaceImg")
    private String snapFaceImg;

    /**
     * 抓拍背景图片
     */
    @JSONField(name = "SnapBgImg")
    private String snapBgImg;
    /**
     * 抓拍目标整体图片
     */
    @JSONField(name = "SnapBodyImg")
    private String snapBodyImg;

    /**
     * 抓拍的特征值
     */
    @JSONField(name = "SnapFeature")
    private String snapFeature;

    /**
     * 抓拍特征值的版本
     */
    @JSONField(name = "SnapFtVersion")
    private String snapFtVersion;

    /**
     * 属性检测出的年龄，摄像机给出的年龄有效范围为1~100
     */
    @JSONField(name = "Gender")
    private Integer gender;
    /**
     * 表情
     * FE_Unknown = 0,
     * FE_Smile,
     * FE_Angry,
     * FE_Sad,
     * FE_Normal,
     * FE_Panic,
     * -1：不支持
     */
    @JSONField(name = "Expression")
    private Integer expression;
    /**
     * 发型
     * HT_Unknown,
     * HT_LongHair,
     * HT_ShortHair
     * -1：不支持
     */
    @JSONField(name = "Hair")
    private Integer hair;
    /**
     * 帽子
     * HS_Unknown,
     * HS_None,
     * HS_HatExist,
     * -1：不支持
     */
    @JSONField(name = "Hat")
    private Integer hat;
    /**
     * 眼镜
     * GT_Unknown,
     * GT_None,
     * GT_NormalGlasses,
     * GT_Sunglasses
     * -1：不支持
     */
    @JSONField(name = "GlassType")
    private Integer glassType;

    /**
     * 口罩
     * MM_Unkonwn,
     * MM_None,
     * MM_MaskExist,
     * -1：不支持
     */
    @JSONField(name = "MouthMask")
    private Integer mouthMask;
    /**
     * 胡子
     * MT_Unknown,
     * MT_None,
     * MT_MustacheExist,
     * -1：不支持
     */
    @JSONField(name = "Mustache")
    private Integer mustache;

    /**
     * 匹配的目标所在组的策略
     * 见 DLDetectPolicy 枚举
     * -1：不支持
     */
    @JSONField(name = "Policy")
    private Integer policy;
    /**
     * 组是否开启目标告警
     */
    @JSONField(name = "GrpEnableAlarm")
    private Boolean grpEnableAlarm;
    /**
     * 抓拍告警类型
     * 按位表示：
     * 第0位表示普通抓拍；
     * 第1位表示告警抓拍；
     * 第2位表示口罩告警抓拍；
     * 第3位表示陌生人高频告警抓拍；
     * 第4位表示名单库人员高频告警抓拍；
     */
    @JSONField(name = "AlarmFlags")
    private Integer alarmFlags;
    /**
     * 抓拍目标位置
     */
    @JSONField(name = "FaceRect")
    private FaceRect faceRect;
}
